package org.jeecg.modules.generator.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @Description 系统表模版生成表模型
 * @Author yangfeng
 * @Date 2020-03-26 13:08:07
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("SYS_GENERATE_TAB")
public class SysGenerateTab {


    /**主键*/
    @TableId(type = IdType.ASSIGN_UUID)
    @ApiModelProperty(value = "主键")
    private java.lang.String  id;

    /**表名*/
    private String tableName;

    /**实体名称*/
    private String entityName;

    /**表字段信息*/
    @TableField(exist = false)
    private List<Map<String,Object>> columnClassList;

    /**表描述*/
    private String tableDescripe;

    /**主键名称*/
    private String primaryName;

    /**主键属性名称*/
    private String primaryField;
    /**主键策略: 1-AUTO(自增长)、2-UUID（全球统一ID）、3-INPUT(用户输入)*/
    private String primaryKeyStrategy;
    /**作者*/
    @TableField(exist = false)
    private String author;

    /**创建时间*/
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**是否支持导出*/
    private String poiEnable;

    /**序列名称*/
    private String sequence;

    /**是否已生成*/
    private String isGenerated;

    @TableField(exist = false)
    private String columnList;

    /**业务包名称*/
    private String bussiPath;

    /**是否生成操作日志 1-是 0-否*/
    private String operateLogFlag;

    /**是否生成接口调用视图  1是  0-否*/
    private String swaggerGenerateFlag;

    /**默认排序字段*/
    private String defaultOrder;

    /**是否包含操作字段 1-是 9-否*/
    private String withOperate;

    /**排序类型：asc,desc*/
    private String orderType;

    /**框架类型ID*/
    private String systemId;

    /**数据源ID*/
    private String dataSourceId;


}
